#pragma once

#include "defs.h"

namespace vivid
{
	class Vector;
    class Point
    {
    public:
        Point() : _x(0), _y(0), _z(0) {}
        Point(Point const & aP) : _x(aP._x), _y(aP._y), _z(aP._z) {}
        Point(VFloat aX, VFloat aY, VFloat aZ) : _x(aX), _y(aY), _z(aZ) {}

		Point & operator = (Point const &aP);

        Point operator +(Vector const &aV) const;
        Point operator -(Vector const &aV) const;
		Vector operator -(Point const &aP) const;
        VFloat Dis(Point const & aP) const;
        VFloat DisSq(Point const & aP) const;

        VFloat _x;
        VFloat _y;
        VFloat _z;
    };


};